package com.brillilab.domain.vo.method;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.brillilab.domain.enums.method.RecommendAuditStateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;

/**
 * 方法审核列表对象
 * @author lj
 *
 */
@Data
public class MethodAuditListVo  implements Serializable {

	private static final long serialVersionUID = 1L;
	/**
	 * 审核ID
	 */
	private Long id;
	/**
	 * 一级类型ID
	 */
	private Long firstTypeId;
	/**
	 * 方法ID
	 */
	private Long methodId;
	/**
	 * 方法名称
	 */
	private String methodName;
	/**
	 * 方法类型名称
	 */
	private String methodTypeName;
	/**
	 * 调用次数
	 */
	private int exportCount;
	/**
	 * 成功次数
	 */
	private int successCount;
	/**
	 * 成功率
	 */
	private BigDecimal successRate;
	
	/**
	 * 推荐人
	 */
	private Long recommenderId;
	/**
	 * 推荐人姓名
	 */
	private String recommenderName;
	/**
	 * 推荐人时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", locale = "zh" , timezone="GMT+8")
	private Date recommendTime;
	/**
	 * 审核状态0-等待审核,1-已推荐,2-审核未通过,3-取消推荐
	 */
	private Integer state;
	/**
	 * 审核状态名称
	 */
	private String stateName;
	
	public BigDecimal getSuccessRate() {
		successRate = BigDecimal.ZERO;
		if(exportCount!=0 && successCount!=0) {
			successRate = new BigDecimal(successCount).divide(new BigDecimal(exportCount), 2, BigDecimal.ROUND_HALF_UP);
		}
		return successRate;
	}
	
	public String getStateName() {
		stateName = RecommendAuditStateEnum.getName(state);
		return stateName;
	}
	
	

}
